package com.hxkj.mapper;

import com.hxkj.domain.po.Article;
import com.hxkj.domain.po.Tags;
import com.platform.common.domain.annotation.EnableDataSource;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
* 数据库操作接口
*
* @author: chenwei
* @version: 1.0
* @datetime: 2018-06-05 19:32:55
*
*/
@Repository("tagsMapper")
public interface TagsMapper {


    /**
    * @author Mr.zheng
    * @Description saveTags 新增tags标签
    * @Date 12:04 2018/6/6
    * @Param [tags]
    * @return int
    **/
    @EnableDataSource("master")
    int saveTags(Tags tags);

    /**
    * @author Mr.zheng
    * @Description getTagslist 获取tags标签的列表
    * @Date 12:52 2018/6/6
    * @Param [tags]
    * @return java.util.List<com.hxkj.domain.po.Tags>
    **/
    @EnableDataSource("slave")
    List<Tags> getTagslist(Tags tags);

    /**
    * @author Mr.zheng
    * @Description getTagsByName 根据tags名称获取tags
    * @Date 13:20 2018/6/7
    * @Param [tagsName]
    * @return java.util.List<com.hxkj.domain.po.Tags>
    **/
    @EnableDataSource("slave")
    List<Tags> getTagsByName(Tags tags);

    /**
    * @author Mr.zheng
    * @Description removerTags 根据ID删除tags
    * @Date 13:49 2018/6/7
    * @Param [tagsId]
    * @return int
    **/
    @EnableDataSource("master")
    int removeTagsById(Long tagsId);

    /**
    * @author Mr.zheng
    * @Description getTagsById 根据id获取Tags
    * @Date 14:02 2018/6/7
    * @Param [tagsId]
    * @return com.hxkj.domain.po.Tags
    **/
    @EnableDataSource("slave")
    Tags getTagsById(Long tagsId);

    /**
    * @author Mr.zheng
    * @Description modifyTags 修改标签
    * @Date 14:10 2018/6/7
    * @Param [tags]
    * @return int
    **/
    @EnableDataSource("master")
    int modifyTags(Tags tags);

    /**
     * @author Mr.zheng
     * @Description getTagsListByTagsClassifyId 根据分类ID获取tags标签列表
     * @Date 14:58 2018/6/7
     * @Param [tagsClassifyId]
     * @return java.util.List<com.hxkj.domain.po.Tags>
     **/
    @EnableDataSource("slave")
    List<Tags> getTagsListByTagsClassifyId(Long tagsClassifyId);

    /**
    * @author Mr.zheng
    * @Description getShowTagsList 获取tags下拉框
    * @Date 15:28 2018/6/29
    * @Param [tags]
    * @return java.util.List<com.hxkj.domain.po.Tags>
    **/
    List<Tags> getShowTagsList(Tags tags);

    /**
     * @author Mr.zheng
     * @Description getQuoteCountTagsList 获取热点标签根据热点排序
     * @Date 8:51 2018/7/12
     * @Param [tags]
     * @return java.util.concurrent.Callable<java.util.List<com.hxkj.domain.po.Tags>>
     **/
    List<Tags> getQuoteCountTagsList(Tags tags);

    /**
     * @author zzx
     * @Description getQuoteCountTagsList 获取热度前 20 的tags标签
     * @Date 8:51 2018/7/12
     * @Param [tags]
     * @return java.util.concurrent.Callable<java.util.List<com.hxkj.domain.po.Tags>>
     **/
    List<Tags> getTagsListByQuoteCount(Tags tags);

    /**
     * @author zzx
     * @Description getQuoteCountTagsList 根据tagId  查询文章列表
     * @Date 8:51 2018/7/12
     * @Param [tags]
     * @return java.util.concurrent.Callable<java.util.List<com.hxkj.domain.po.Tags>>
     **/
    List<Article> getArticleByTag(Tags tags);

    /**
     * @author Mr.zheng
     * @Description getHotTagsList 获取热词标签
     * @Date 11:59 2018/7/20
     * @Param [tags]
     * @return java.util.List<com.hxkj.domain.po.Tags>
     **/
    List<Tags> getHotTagsList(Tags tags);

    /**
    * @author Mr.zheng
    * @Description getTags 根据ID获取tag
    * @Date 16:14 2018/7/20
    * @Param [tags]
    * @return com.hxkj.domain.po.Tags
    **/
    Tags getTags(Tags tags);
}
